#ifndef YXSTRING_H
#define YXSTRING_H

#define BUFFER_SIZE 1024
#include <stddef.h>

// 结构体表示一个部分的数据
typedef struct {
  char *name;      // 字段名称或文件字段的名称
  char *filename;  // 文件名，若没有则为空
  char *content;   // 部分的内容
  size_t content_length; // 内容长度
} MultipartPart;

// 结构体表示 multipart 数据的解析结果
typedef struct {
  MultipartPart *parts;  // 部分数组
  size_t part_count;     // 部分数量
} MultipartData;

char  *yxString_printf(const char *format, ...);
char **extract_values(const char *query, int *count);
void   url_decode(char *str);
MultipartData* parse_multipart_data(const char *body, const char *boundary);

#endif // YXSTRING_H
